package cn.silver.module.system.service;

import cn.silver.framework.mybatis.bean.PageModel;
import cn.silver.framework.mybatis.service.IBaseService;
import cn.silver.framework.openapi.model.ResultPage;
import cn.silver.module.authority.bean.RoleBean;
import cn.silver.module.system.domain.SysUserRole;
import cn.silver.module.system.bean.UserBean;
import cn.silver.module.system.bean.UserRoleBean;
import cn.silver.module.system.param.UserParam;
import cn.silver.module.system.param.UserRoleParam;

import java.util.Collection;
import java.util.List;

/**
 * @author zhouxiaobo
 */
public interface ISysUserRoleService extends IBaseService<SysUserRole, UserRoleParam, UserRoleBean> {
    /**
     * 初始化信息
     */
    void init();
    /**
     * 查询用户具有的角色信息
     *
     * @param userId 用户主键
     * @return
     */
    List<RoleBean> selectRoleGroup(String userId);

    /**
     * 根据条件分页查询已分配用户角色列表
     *
     * @param user 用户信息
     * @return 用户信息集合信息
     */
    ResultPage<UserBean> selectAllocatedList(String roleId, UserParam user, PageModel pageModel);

    /**
     * 根据条件分页查询未分配用户角色列表
     *
     * @param user 用户信息
     * @return 用户信息集合信息
     */
    ResultPage<UserBean> selectUnallocatedList(String roleId, UserParam user, PageModel pageModel);

}
